In an internal combustion engine, the position of a piston, which is arranged in each cylinder, is typically detected based on the rotation angle of a crankshaft, which is an output shaft of the engine. The rotation angle of the crankshaft is referred to as a crank angle (° CA). Various settings, such as the fuel injection timing and the ignition timing, are associated with the crank angle.
The crank angle is detected, for example, by a crank rotor and a crank angle sensor. The crank rotor is arranged on the crankshaft. The crank angle sensor is arranged to face the crank rotor.
The crank rotor includes a plurality of teeth and a teeth missing portion. The teeth are arranged at equal angular intervals in the rotation direction of the crankshaft. The teeth missing portion is defined at a portion in which a predetermined number of teeth are missing. Each tooth passes a position facing the crank angle sensor as the crank rotor rotates. Whenever detecting the passage of a tooth, the crank angle sensor outputs a pulse signal. When the teeth missing portion passes the position facing the crank angle sensor, the crank angle sensor outputs a reference position signal that differs from the pulse signal. The rotational angular position of the crankshaft at the timing when the reference position signal is output is set as a reference position. A crank counter counts the number of pulse signals output from the crank angle sensor after the reference position signal is output. The rotation angle of the crankshaft from the reference position, or the crank angle, is detected based on the counted number of pulse signals.
The crankshaft rotates in one direction when the engine is driven. However, when the engine is stopped, the rotation direction of the crankshaft may be reversed immediately before the crankshaft stops rotating. Hereafter, the rotation of the crankshaft when the engine is driven is referred to as “forward rotation”.
As described above, the number of pulse signals output from the crank angle sensor is counted and the crank angle is detected based on the counted number of pulse signals. If the rotation of the crankshaft is reversed when the engine is stopped, the number of pulse signals output during the reverse rotation must be subtracted from the counted number of pulse signals. However, the number of pulse signals output during the reverse rotation is instead added to the counted number of pulse signals. As a result, the crank angle that is recognized when the engine is stopped is inaccurate. Accordingly, when the engine is started again, the recognized crank angle, which indicates the position of each piston, remains inaccurate until the reference position signal is detected. Thus, fuel injection and ignition cannot be performed until the reference position signal is detected and the crank angle is accurately recognized.
If the reverse rotation of the crankshaft is detectable, it is possible to determine the timing at which the number of pulse signals is subtracted from the counted number of pulse signals. In this case, it is possible to obtain the position where the crankshaft stops when the engine is stopped. In other words, it is possible to determine the crank angle of the crankshaft when the engine is stopped. If it is possible to detect the crank angle when the engine is stopped, it is also possible to readily determine the crank angle when the engine is started again. This would enable fuel injection and ignition to be performed before detection of the reference signal. This would improve engine characteristics, such as engine startability.
Japanese Laid-Open Patent Publication No. 2001-214791 describes an apparatus that detects reverse rotation of the crankshaft in the manner described below. If rotation of the crankshaft is reversed when the engine is stopped, the engine speed decreases gradually and reaches zero. Then the engine speed starts increasing when the reverse rotation begins. Such changes in the engine speed are reflected in the duration of the pulse signal. The apparatus detects reverse rotation of the crankshaft when the length of the time of the pulse signal reaches a maximum value, that is, when the time length begins to decrease after having been increasing.
The crank angle may be detected based on pulse signals remaining after a signal elimination process. The signal elimination process eliminates a predetermined proportion of pulse signals from the sequence of pulse signals that are output at equal angular intervals during rotation of the crankshaft to obtain a remaining signal, which is used to detect the crank angle.
For example, when the teeth of the crank rotor are arranged at an angular interval of 10°, a pulse signal is output at every crank angle of 10° CA. The crank counter is operated based on a remaining signal obtained by eliminating two out of every three successive pulse signals. In this case, the counter is operated at every crank angle of 30° CA. Thus, the load on a processor for detecting the crank angle is reduced as compared with when the counter is operated at every crank angle of 10° CA, that is, when the signal elimination process is not performed. This enables the crank angle to be detected without the need for a high-speed processor.
When the signal elimination process is performed, the load on the processor for detecting the crank angle is reduced. However, when the signal elimination process is performed, the detection resolution of the crank angle is lowered. This may result in inaccurate detection of reverse rotation if the apparatus of Japanese Laid-Open Patent Publication No. 2001-214791 performs the signal elimination process. More specifically, if the apparatus recognizes reverse rotation of the crankshaft by detecting a change in a pulse signal when reverse rotation begins, the signal elimination process may hinder detection of this change in the pulse signal. As a result, the apparatus may fail to accurately detect the reverse rotation. To avoid such a state, the reverse rotation detection process in the prior art requires high detection resolution for the crank angle. This inevitably increases the load for detecting the crank angle.
The above counter is operated when a pulse signal is output. In other words, the counter is operated at a timing that is synchronized with a shift in the output level of the pulse signal. However, if the counter is operated in accordance with either the rise timing or the fall timing of the pulse signal regardless of whether the crankshaft is in forward rotation or reverse rotation, the crank angle fails to be detected accurately during reverse rotation of the crankshaft. An example in which such a deficiency occurs will be described with reference to FIG. 11. Here, the rise of the pulse signal refers to a shift in the pulse signal from a low level to a high level, and the fall of the pulse signal refers to a shift in the pulse signal from a high level to a low level.
FIG. 11 shows an example in which a deficiency occurs under conditions (a) to (d) as described below.
(a) The crank angle sensor outputs a low level signal when detecting a tooth (ridge section) of the crank rotor, and outputs a high level signal when detecting the section between adjacent teeth (valley section) of the crank rotor.
(b) During forward rotation of the crankshaft, the count value of the crank counter is increased when a pulse signal falls, that is, when an output signal of the crank angle sensor falls. During reverse rotation of the crankshaft, the count value of the crank counter is decreased when the pulse signal falls.
(c) The teeth of the crank rotor are arranged at angular intervals of 10°.
(d) In the crank rotor, the actual crank angle corresponding to the tooth indicated by A in FIG. 11 is 110° CA.
As shown in FIG. 11, during forward rotation of the crankshaft, the output of the sensor falls when one edge (first edge) A1 of the tooth A passes the position facing the crank angle sensor, and the output of the sensor rises when the other edge (second edge) A2 of the tooth A passes the position facing the crank angle sensor. Then, when the crankshaft rotates by a crank angle of 10° CA after the first edge A1 of the tooth A passes the position facing the crank angle sensor and the actual crank angle becomes 120° CA, a first edge B1 of the tooth B, which is arranged adjacent to the tooth A, passes the position facing the crank angle sensor so that the output of the sensor falls. In this manner, the count value of the crank counter is increased and 10° CA is added to the crank angle whenever the output of the sensor falls. As a result, when the crank angle detected in correspondence with the first edge A1 of the tooth A is 110° CA, the crank angle detected in correspondence with the first edge B1 of the tooth B is 120° CA. In this case, the actual crank angle and the detected crank angle of the crankshaft coincide with each other.
When the rotation of the crankshaft is reversed after a second edge B2 of the tooth B passes the position facing the crank angle sensor, that is, when rotation of the crankshaft is reversed while the crank angle sensor is detecting a valley section of the crank rotor, the second edge B2 of the tooth B again passes the position facing the crank angle sensor. The crank angle sensor detects passage of the tooth B. The output of the sensor falls in synchronization with passage of the second edge B2. As a result, the count value of the crank counter is decreased. The detected crank angle becomes 110° CA in synchronization with passage of the second edge B2. However, the actual crank angle is 110° CA when the first edge B1 of the tooth B passes the position facing the crank angle sensor. The actual crank angle and the detected crank angle deviate from each other by a value corresponding to the width of the tooth B. The detected crank angle is based on the value of the crank counter that decreased at a timing earlier than the timing corresponding to the actual crank angle. If the rotation of the crankshaft is reversed when the crank angle sensor is detecting a ridge section of the crank rotor, the detected crank angle is based on the value of the crank counter that decreased at a timing delayed from the timing corresponding to the actual crank angle.
In this way, if the crank counter increases or decreases in accordance with the fall timing of the pulse signal regardless of the rotation direction of the crankshaft, the crank counter is operated in accordance with the detection of a different tooth edge depending on whether the crankshaft is in forward rotation or reverse rotation. In other words, the crank angle corresponding to the fall signal during forward rotation of the crankshaft and the crank angle corresponding to the fall signal during reverse rotation of the crankshaft deviate from each other. Thus, the actual crank angle and the detected crank angle deviate from each other during reverse rotation of the crankshaft. As a result, the crank angle fails to be detected accurately. In the same manner, the crank angle also fails to be detected accurately during reverse rotation of the crankshaft when the count value of the crank counter increases or decreases at the rise timing of the pulse signal.
Conditions (a) to (d) are merely examples. Conditions differing from conditions (a) to (d) may be set. Even under different conditions, the crank angle may fail to be detected accurately during reverse rotation of the crankshaft if the counter is operated in accordance with either the rise timing or the fall timing of the pulse signal regardless of whether the crankshaft is in forward rotation or reverse rotation.
The crank angle may be detected accurately during reverse rotation of the crankshaft by monitoring both the rise and the fall of the pulse signal or by inverting the waveform of the pulse signal when reverse rotation of the crankshaft is detected. However, this would increase the load for detecting the crank angle.